package com.cyzy.service.impl;

import com.cyzy.pojo.CarModel;
import com.cyzy.service.FareStrategy;
import org.springframework.stereotype.Component;

/**
 * @author cuncun
 * @create 2025-05-28 下午8:13
 *
 * 夜间计费规则
 */

@Component
public class NightFareStrategy implements FareStrategy {

    @Override
    public double calculateFare(CarModel carModel, double kilometer) {

        double money;



        //判断乘客出发公里数是否满足车型远途公里数
        if(kilometer >= carModel.getLongKilometers()){
            //计算正常范围内的价格 (起步价格加百分之2 + 远途公里数-起步公里 * 夜间每公里价格 + 超过的远途公里价格)
            money = Double.valueOf(carModel.getBaseFare())*1.2 +
                    (carModel.getLongKilometers() - carModel.getStartingKilometers()) * carModel.getPricePerBlackKm()
                    + (kilometer - carModel.getLongKilometers()) * carModel.getLongKmMoney();

            //如果公里数在远途公里数内以及在基础公里数之外
        }else if(kilometer > carModel.getStartingKilometers()){
            //计算正常范围内的价格 (起步价格加百分之2 + 总公里数 - 起步公里数 * 夜间每公里价格)
            money = Double.valueOf(carModel.getBaseFare())*1.2 +
                    (kilometer - carModel.getStartingKilometers()) * carModel.getPricePerBlackKm();
        }else{
            //计算起步公里数之内的价格
            money = Double.valueOf(carModel.getBaseFare())*1.2;
        }

        return money;
    }
}
